// String.prototype.self = function () {return this}
// var a = 'Str'
// var b = a.self()
// console.log(a === b, a.valueOf === b.valueOf, typeof a, typeof b)
// console.log(new String('Str'), String('Str'))

// var a = 1
// function foo(a) {
//   a = 2
// }
// foo(a)
// console.log(a)


var a = 1
function foo(a, b) {
  var a
  console.log(a)
  console.log(b)
  arguments[0] = 3
  arguments[1] = 4
  // a = 2
  console.log(a, this.a, b)
}
foo(5,6)